#include <stdio.h>

// 数据类型的作用：编译器预算对象(变量)分配的内存空间大小

// 常量: 程序运行中不能改变的量
// 整型常量: 100、200、1000
// 字符常量: 'A'、'B'、'C'
// 字符型常量: "String"、"Hello"
// 浮点常量: 3.14、2.731

// 变量: 程序在运行中可以被改变的量, 存在内存中(需要程序定义)
// 定义: 在内存中开辟内存空间, 告诉编译器存在当前变量
// 数据类型 变量名
// int      类型 内存占用 4 个字节
// short    类型 内存占用 2 个字节
// char     类型 内存占用 1 个字节
// float    类型 内存占用 4 个字节
// double   类型 内存占用 8 个字节

#define MAX 100

int main() {
    int number_value_01 = 100; // 定义变量并且初始化

    short number_value_02;

    char number_value_03;

    extern int number_value_04; // 定义了一个变量, 但还未分配内存空间(声明变量)

    // number_value_04 = 400; error

    // MAX = 200; 宏定义的变量值不能改变

    // 有符号数: 最高位为符号位, 其他位为数据位
    // 数值范围: -128 - +127
    signed char number_value_05;

    // 无符号数: 全部都是数据位
    // 数值范围: 0 - +255
    unsigned char number_value_06;

    return 0;
}